﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using QLCONGNOLIBS.Ultils;
using QLCONGNOLIBS.Securities;

namespace QLCONGNOLIBS.Models
{
    public class CustomerModels
    {
        //1. Datafield
        private SqlConnection m_objConnection;
        private SqlCommand m_objCommand;
        private SqlDataAdapter m_objAdapter;        
        private SecurityEntity m_objSecurity;

        //2. Khai báo các thủ tục sẽ sử dụng
        private const string GET_CUSTOMERS = "SP_GET_CUSTOMERS";

        //3. Hàm khởi dựng - Constructors
        public CustomerModels(SqlConnection objConnection, SecurityEntity objSecurity)
        { 
            //Thiết lập thông tin kết nối cho datafield
            m_objConnection = objConnection;
            m_objSecurity = objSecurity;
        }

        public CustomerModels(string connectString)
        {
            //Khởi tạo kết nối với ConnectionString
            m_objConnection = new SqlConnection();
            if (m_objConnection.State == ConnectionState.Closed)
            {
                m_objConnection = ConnectionMans.OpenConnection(connectString);
            }
        }

        //4. Thực thi và nhận về dữ liệu là DataTable"        
        /// <summary>
        /// Hiển thị danh sách học viên
        /// </summary>
        /// <returns></returns>
        public Models.DbSetQLCNEn.ICustomerDataTable GetElements()
        {
            DbSetQLCNEn.ICustomerDataTable objTable = new DbSetQLCNEn.ICustomerDataTable();
            try
            {
                m_objCommand = new SqlCommand(GET_CUSTOMERS, m_objConnection);
                m_objCommand.CommandType = CommandType.StoredProcedure;
                m_objAdapter = new SqlDataAdapter(m_objCommand);
                m_objAdapter.Fill(objTable);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }
            return objTable;
        }      
    }
}
